xitio, publicación de artículos gratis, participación ciudadana, notas de prensa
  Usuario: Clave:    
 
 
Documento sin título
 
Documento sin título
 
Documento sin título
Home
Xnechijli01 6/17/2019 3:59:35 PM
Xnechijli01
Anulabilidad de variable en C# 8
Anulabilidad en C# 8
votos 0 comentarios 0 enviar vínculo a un amigo
Tags C#
 
Anulabilidad de variable en C# 8 mediante cdigo.
 

Anulabilidad de variable en C# 8

Como parte de nuestro curso de C# te explicamos este tema. La nulabilidad de una variable está determinada por otra variable. En este siguiente ejemplo de código, la clase está diseñada de tal manera que m_ListeningToItemEvents será verdadero si y solo si m_ItemPropertyChanged no es nulo. No hay forma de que el compilador conozca esta regla. Cuando eso ocurra, puedes agregar el operador de nulidad (!) a la variable (m_ItemPropertyChanged en este caso) para indicar que no será nulo en ese momento.

if (m_ListeningToItemEvents) { if (item is INotifyPropertyChangedWeak) ((INotifyPropertyChangedWeak)item).AddHandler(m_ItemPropertyChanged!); else if (item is INotifyPropertyChanged) ((INotifyPropertyChanged)item).PropertyChanged += OnItemPropertyChanged; } 

Corrección de falsos positivos con casting explícito.

En este siguiente ejemplo, el compilador informa falsamente que la nulabilidad de m_Base.Values ??no es compatible con IEnumerable <TValue>. Para eliminar la advertencia, puedes agregar el reparto explícito que se ve a continuación:

readonly Dictionary<ValueTuple<TKey1, TKey2>, TValue> m_Base; IEnumerable<TValue> IReadOnlyDictionary<ValueTuple<TKey1, TKey2>, TValue>.Values { get { return (IEnumerable<TValue>)m_Base.Values; } } 

Ten en cuenta que el compilador marca esa línea como una conversión redundante. Normalmente, este es un mensaje del compilador, en lugar de una advertencia, pero es de esperar que se corrija a tiempo para el momento del lanzamiento.

Corrección de falsos positivos con variables temporales o conversiones condicionales.

En el siguiente ejemplo, el compilador indica que hay un error en la línea CancelEdit. Aunque la instrucción if anterior prueba que item.Value no es nulo, el compilador no confía en que la próxima vez que lea el item.Value todavía no sea nulo.

foreach (var item in m_CheckpointValues) { if (item.Value is IEditableObject) ((IEditableObject)item.Value).CancelEdit(); } 

Una forma de satisfacer al compilador es almacenar item.Value en una variable temporal.

foreach (var item in m_CheckpointValues) { object? value = item.Value; if (value is IEditableObject) ((IEditableObject)value).CancelEdit(); } 

Pero en este caso, podemos simplificarlo aún más utilizando una conversión condicional, como operador, seguida de una invocación de método condicional.

foreach (var item in m_CheckpointValues) { (item.Value as IEditableObject)?.CancelEdit(); } 

En una nota siguiente hablaremos más de este tema. Para poder entender mejor los lenguajes de programación, puedes tomar un curso de Visual Basic, para complementar tu uso de .NET. Además te ayudará tomar un curso de MySQL.

Te gustó esta nota, compártela con tus amigos
ico_copada.gif ico_delicious.png ico_enchilame.gif ico_facebook.png ico_fresqui.gif ico_google.gif ico_meneame.gif ico_myspace.gif ico_technorati.png ico_twitter.gif ico_yahoo.png
Visitá otras notas de Xnechijli01
Cmo eliminar filas en blanco en Microsoft Excel
Convertir datos a grfico de lneas en Excel
Los gadgets y la seguridad de Java
Problemas de seguridad en las bases de datos.
Advertencia las debilidades de seguridad de Java
Los inicios de Java a ms de 30 aos de su creacin
 
Comentarios 0  
Enviá tu comentario
Para dejar tu comentario debes ser miembro de xitio.
 
Documento sin título
 
Documento sin título
 
 
 
 
Documento sin título
 
Nos contaron que leen
Documento sin título
 
Documento sin título
ULTIMOS PUBLICADOS Tecnologa
Es necesario cambiar la batera del iPhone?
contenidos7
Un servicio profesional y autorizado
 
4/16/2024 4:01:33 AM
 
Qu es un salvaescaleras?
contenidos7
Salvaescaleras que se adaptan a tu vivienda
 
7/10/2023 4:51:24 AM
 
Salvaescaleras, movilidad sin barreras
contenidos7
Independencia y libertad de movimiento
 
6/7/2023 4:49:57 AM
 
Los gadgets y la seguridad de Java
Xnechijli01
El cdigo de Java puede ser vulnerable si no se revisa con frecuencia.
 
8/18/2022 10:52:08 AM
 
Problemas de seguridad en las bases de datos.
Xnechijli01
Los Problemas de seguridad en las bases de datos en Java pueden evitarse con la programacin adecuada.
 
8/17/2022 9:52:17 AM
 
Advertencia las debilidades de seguridad de Java
Xnechijli01
Advertencia sobre bibliotecas de Java y debilidades de seguridad de deserializacin
 
8/16/2022 9:35:05 AM
 
Los inicios de Java a ms de 30 aos de su creacin
Xnechijli01
Java es uno de los lenguajes de programacin ms populares mayormente usados. Su historia nos dice por qu.
 
8/22/2022 6:11:20 AM
 
El problema de conversin de JOBOL
Xnechijli01
Las complicaciones de conversin de lenguaje entre COBOL y Java
 
8/19/2022 9:12:06 PM
 
Las sillas salvaescaleras: un recurso social necesario
contenidos7
Una sociedad que se preocupa por mejorar la accesibilidad
 
12/22/2021 5:15:12 AM
 
Instala cmaras de vigilancia y gana en seguridad
contenidos7
Una cmara de vigilancia como medio para evitar robos y ocupaciones
 
9/23/2021 2:59:14 AM
 
Documento sin título
 
Documento sin título
 
Documento sin título
 
 
Documento sin título
 
 
 
Documento sin título
 
Publicar es gratis, sólo tienes que registrarte y escribir.